package com.sh.data.engine.repository.dao.datadev;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.sh.data.engine.repository.dao.datadev.entity.FlinkMenuNodeEntity;

/**
 * @Author: zigui.zdf @Date: 2022/3/16 16:59:08 @Description:
 */
public interface FlinkMenuNodeMapper extends BaseMapper<FlinkMenuNodeEntity> {
//
//  public boolean hasSameMenuNode(
//      String id, String pid, String projectId, String name, Integer nodeType) {
//    Query query = new Query();
//    query
//        .addCriteria(Criteria.where("pid").is(pid))
//        .addCriteria(Criteria.where("name").is(name))
//        .addCriteria(Criteria.where("projectId").is(projectId))
//        .addCriteria(Criteria.where("nodeType").is(nodeType));
//    if (StringUtils.isNotEmpty(id)) {
//      query.addCriteria(Criteria.where("id").ne(id));
//    }
//    long count = this.count(query);
//
//    return count > 0 ? true : false;
//  }
//
//  public boolean existSameFunctionNode(String id, String projectId, String name) {
//    Query query = new Query();
//    Criteria criteria =
//        Criteria.where("name")
//            .is(name)
//            .and("nodeType")
//            .is(FlinkNodeTypeEnum.FUNCTION.getCode())
//            .and("projectId")
//            .is(projectId);
//    if (StringUtils.isNotEmpty(id)) {
//      criteria.and("id").ne(id);
//    }
//    query.addCriteria(criteria);
//    long count = this.count(query);
//    return count > 0 ? true : false;
//  }
//
//  public Boolean existSameNodeName(String id, String name, String pid, String projectId) {
//    Query query = new Query();
//    Criteria criteria =
//        Criteria.where("name").is(name).and("pid").is(pid).and("projectId").is(projectId);
//    if (StringUtils.isNotEmpty(id)) {
//      Criteria.where("id").ne(id);
//    }
//    query.addCriteria(criteria);
//    long count = this.count(query);
//    return count > 0 ? true : false;
//  }
//
//  public Integer getMaxSort(String projectId, String pid) {
//    Query query = new Query();
//    query
//        .addCriteria(Criteria.where("pid").is(pid))
//        .addCriteria(Criteria.where("projectId").is(projectId))
//        .limit(1);
//    final Sort sort = Sort.by(Sort.Direction.DESC, "sort");
//    final List<FlinkMenuNodeEntity> entityList = this.findMulti(query, sort);
//    if (CollectionUtils.isNotEmpty(entityList)) {
//      return entityList.get(0).getSort();
//    }
//    return 0;
//  }
//
//  public List<FlinkMenuNodeEntity> getNodesByPid(
//      String projectId, String pid, boolean onlyDirNode) {
//    Query query = new Query();
//    Criteria criteria = Criteria.where("pid").is(pid).and("projectId").is(projectId);
//    // .orOperator(Criteria.where("pid").is(pid).and("isSystem").is(1));
//    if (onlyDirNode) {
//      criteria.and("nodeType").is(FlinkNodeTypeEnum.DIR.getCode());
//    }
//    query.addCriteria(criteria);
//    final Sort sort = Sort.by(Sort.Direction.DESC, "sort");
//    final List<FlinkMenuNodeEntity> entityList = this.findMulti(query, sort);
//    return entityList;
//  }
//
//  public void removeNodeByIds(List<String> ids) {
//    Query query = new Query();
//    query.addCriteria(Criteria.where("id").in(ids));
//    remove(query);
//  }
//
//  public void lockNode(String id, Integer isLock) {
//    FlinkMenuNodeEntity entity = new FlinkMenuNodeEntity();
//    entity.setId(id);
//    entity.setIsLocked(isLock);
//    this.updateByIdSelective(entity);
//  }
//
//  public List<FlinkMenuNodeEntity> getMenuNodeList(List<String> ids) {
//    Query query = new Query();
//    query.addCriteria(Criteria.where("id").in(ids));
//    return findMulti(query);
//  }
}
